type User = {
  id:number;
  kind:string;
}

// T > User
// function makeCustomer<T extends User>(u:T):T{
//   return {
//     ...u,
//     id:u.id,
//     kind:'customer'
//   }
// }

// T > User
function makeCustomer<T extends User>(u:T):T{
  return <T>{
    id:u.id,
    kind:'customer'
  }
}